8 research outputs found

    Actionable Program Analyses for Improving Software Performance

    Get PDF
    Nowadays, we have greater expectations of software than ever before. This is followed by constant pressure to run the same program on smaller and cheaper machines. To meet this demand, the application’s performance has become the essential concern in software development. Unfortunately, many applications still suffer from performance issues: coding or design errors that lead to performance degradation. However, finding performance issues is a challenging task: there is limited knowledge on how performance issues are discovered and fixed in practice, and current performance profilers report only where resources are spent, but not where resources are wasted. The goal of this dissertation is to investigate actionable performance analyses that help developers optimize their software by applying relatively simple code changes. To understand causes and fixes of performance issues in real-world software, we first present an empirical study of 98 issues in popular JavaScript projects. The study illustrates the prevalence of simple and recurring optimization patterns that lead to significant performance improvements. Then, to help developers optimize their code, we propose two actionable performance analyses that suggest optimizations based on reordering opportunities and method inlining. In this work, we focus on optimizations with four key properties. First, the optimizations are effective, that is, the changes suggested by the analysis lead to statistically significant performance improvements. Second, the optimizations are exploitable, that is, they are easy to understand and apply. Third, the optimizations are recurring, that is, they are applicable across multiple projects. Fourth, the optimizations are out-of-reach for compilers, that is, compilers can not guarantee that a code transformation preserves the original semantics. To reliably detect optimization opportunities and measure their performance benefits, the code must be executed with sufficient test inputs. The last contribution complements state-of-the-art test generation techniques by proposing a novel automated approach for generating effective tests for higher-order functions. We implement our techniques in practical tools and evaluate their effectiveness on a set of popular software systems. The empirical evaluation demonstrates the potential of actionable analyses in improving software performance through relatively simple optimization opportunities

    Actionable Program Analyses for Improving Software Performance

    No full text
    Nowadays, we have greater expectations of software than ever before. This is followed by constant pressure to run the same program on smaller and cheaper machines. To meet this demand, the application’s performance has become the essential concern in software development. Unfortunately, many applications still suffer from performance issues: coding or design errors that lead to performance degradation. However, finding performance issues is a challenging task: there is limited knowledge on how performance issues are discovered and fixed in practice, and current performance profilers report only where resources are spent, but not where resources are wasted. The goal of this dissertation is to investigate actionable performance analyses that help developers optimize their software by applying relatively simple code changes. To understand causes and fixes of performance issues in real-world software, we first present an empirical study of 98 issues in popular JavaScript projects. The study illustrates the prevalence of simple and recurring optimization patterns that lead to significant performance improvements. Then, to help developers optimize their code, we propose two actionable performance analyses that suggest optimizations based on reordering opportunities and method inlining. In this work, we focus on optimizations with four key properties. First, the optimizations are effective, that is, the changes suggested by the analysis lead to statistically significant performance improvements. Second, the optimizations are exploitable, that is, they are easy to understand and apply. Third, the optimizations are recurring, that is, they are applicable across multiple projects. Fourth, the optimizations are out-of-reach for compilers, that is, compilers can not guarantee that a code transformation preserves the original semantics. To reliably detect optimization opportunities and measure their performance benefits, the code must be executed with sufficient test inputs. The last contribution complements state-of-the-art test generation techniques by proposing a novel automated approach for generating effective tests for higher-order functions. We implement our techniques in practical tools and evaluate their effectiveness on a set of popular software systems. The empirical evaluation demonstrates the potential of actionable analyses in improving software performance through relatively simple optimization opportunities

    Performance issues and optimizations in JavaScript: an empirical study

    No full text
    As JavaScript is becoming increasingly popular, the performance of JavaScript programs is crucial to ensure the responsiveness and energy-efficiency of thousands of programs. Yet, little is known about performance issues that developers face in practice and they address these issues. This paper presents an empirical study of 98 fixed performance issues from 16 popular client-side and server-side JavaScript projects. We identify eight root causes of issues and show that inefficient usage of APIs is the most prevalent root cause. Furthermore, we find that most issues are addressed by optimizations that modify only a few lines of code, without significantly affecting the complexity of the source code. By studying the performance impact of optimizations on several versions of the SpiderMonkey and V8 engines, we find that only 42.68% of all optimizations improve performance consistently across all versions of both engines. Finally, we observe that many optimizations are instances of patterns applicable across projects, as evidenced by 139 previously unknown optimization opportunities that we find based on the patterns identified during the study. The results of the study help application developers to avoid common mistakes, researchers to develop performance-related techniques that address relevant problems, and engine developers to address prevalent bottleneck patterns

    Periodontal disease related to oxidative stress

    No full text
    Th e study evaluates oxidative stress (OS) in patients with diff erent stages of periodontal disease (PD) and the infl uence of their smoking habits on OS. PD is related to connective tissue infl ammation, which leads to deterioration of the supporting structures of the tooth. OS is a condition characterised by overproduction of free radicals (FR), which may be involved in PD, causing periodontal tissue damage and other related diseases. Study patients' were grouped as I-non smokers (n=45) and II-smokers (n=45); and consisted of patients with 3 PD stages: mild (1), moderate (2) and severe (3). As a control group, 30 healthy subjects (all non smokers) with no signs of PD were selected. FR levels were determined by the D-Roms test, total antioxidant capacity (AOC) was determined by the OXY-adsorbent test, (Diacron, Italy) and lipid peroxidation (LP) was determined by the fl uorometric method with thiobarbituric acid and its end product, malonyldialdehyde (MDA). OS was found in the periodontal tissue and serum of PD patients, with the highest level of FR in the severe stage (3) in non smokers (p<0.05) as well as smokers (p<0.01); AOC showed decreasing values from mild (1) to severe stage (3) of PD for smokers (p<0.05). LP in serum showed the highest level in severe stage (3) in both groups i.e., non smokers and smokers (p<0.05) compared to controls. Based on the obtained results, we may conclude that PD is related to OS and may either be a cause or a trigger for more accelerated OS. Cigarette smoking increased FR production and is a serious factor exacerbating further tissue damage in PD. Th ese fi ndings may contribute to possible use of effi cient antioxidant agents as a preventive measure for PD and as a therapy for better disease outcome

    The Antioxidant Supplementation with Filipendula ulmaria Extract Attenuates the Systemic Adverse Effects of Nanosized Calcium Phosphates in Rats

    No full text
    The aim of this study was to investigate and compare the systemic toxicity of three nanosized calcium phosphates (CaPs): hydroxyapatite (HA), tricalcium phosphate (TCP), and amorphous calcium phosphate (ACP) in rats. Since those metallic compounds are widely used as bone replacement materials, including their use in oral surgery, CaPs were applied (per os) equimollary (17.8 mg/kg, 11 mg/kg, and 9.65 mg/kg b.w., respectively) for 30 days in order to mimic the previously described release rate from dental composites. Also, we employed antioxidant supplementation with Filipendula ulmaria (FU) extract. All the applied CaPs significantly increased serum calcium, triglycerides, LDL, and LDH, while serum levels of testosterone and LH declined, with no alterations in the liver enzymes. The evaluation of oxidative stress markers (in the liver, kidney, and testicle) showed an increase in TBARS values, while SOD and CAT activities and GSH levels were significantly reduced. The relative gene expression of Bax and Bcl-2 was shifted to proapoptotic action, accompanied by intense characteristic histological changes in architecture in all investigated organs. The toxic effects were most prominent in groups treated by ACP. FU administration attenuated the majority of nanosized CaP-induced adverse effects, thus recommending this therapeutic approach to minimize nano-CaP systemic toxicities
    corecore